package com.yunhe.sms.dao.system;

import com.yunhe.commons.dto.Pageable;
import com.yunhe.sms.entity.system.Role;

import java.util.List;

/**
 * Created by Administrator on 2017/10/23 0023.
 */
public interface RoleDao {
    /**
     * 增
     * @param role
     */
     Long save(Role role);

    /**
     * 删
     * @param id
     */
    void delete(Long id);


    void update(Role role);

    /**
     * 查单个权限
     * @param id
     * @return
     */
    Role find(Long id);

    /**
     * 查所有权限
     * @return
     */
    List<Role> findAll();

    /**
     * 查所有可用的权限
     * @return
     */
    List<Role> findAllUsable();

    /**
     * 分页查询所有权限
     * @param offset
     * @param size
     * @return
     */
    Pageable<Role> findPage(Integer offset, Integer size);

    /**
     * 插入角色权限信息
     * @param roleId
     * @param permissionId
     */
    void saveRolePermission(Long roleId, Long permissionId);


    /**
     * 批量插入角色权限信息
     * @param params
     */
    void saveRolePermissionPL(Object[][] params);

    /**
     * 删除某个角色的所有权限
     * @param roleId
     */
    void deleteByRole(Long roleId);

}
